package com.dhcc.bpm.modules.metadata.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.bpm.modules.metadata.entity.Metadata;
import com.dhcc.bpm.modules.metadata.vo.MetadataVO;
import org.springblade.core.mp.base.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @ClassName IMetadataService
 * @Description 元数据表 服务类
 * @Author daina
 * @Date 2020/2/21 14:16
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
public interface IMetadataService extends BaseService<Metadata> {

    /**
     * @Description 自定义分页
     * @Author daina
     * @Date 15:16 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> selectMetadataPage(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 查询选中的复合结构体元数据
     * @Author daina
     * @Date 15:16 2021/4/29
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> structMetalist(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 自定义分页 网关 公共参数
     * @Author daina
     * @Date 15:16 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> selectGateMetadataList(IPage<MetadataVO> page, MetadataVO metadata);

    /**
     * @Description 自定义分页 请求参数
     * @Author daina
     * @Date 15:16 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> selectReqMetadataList(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 自定义分页 响应参数
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> selectResMetadataList(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 自定义分页 请求参数添加元数据
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> listUnSelectReqMetadata(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 自定义分页 复合结构体添加元数据
     * @Author daina
     * @Date 15:17 2021/4/29
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> listUnSelectStructMeta(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 自定义分页 响应参数添加元数据
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> listUnSelectResMetadata(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 自定义分页 网关公共参数添加元数据
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> listUnSelectCommonMetadata(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 查询详细信息
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param metadata
     * @return com.dhcc.bpm.modules.metadata.vo.MetadataVO
     **/
    MetadataVO selectDetailInfo(MetadataVO metadata);
    /**
     * @Description 查询需要导出的信息
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param metadata
     * @return java.util.List<com.dhcc.bpm.modules.metadata.entity.Metadata>
     **/
    List<Metadata> listMetadataToExcel(Metadata metadata);


    /**
     * @Description 树形
     * @Author daina
     * @Date 15:17 2020/3/26
     * @param
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    List<MetadataVO> tree();

    /**
     * 自定义分页 网关校验参数元数据表
     * @Author daina
     * @Date 17:39 2020/2/21
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> selectGateParamCheckList(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * 查询未加入网关参数校验的元数据
     * @Author daina
     * @Date 17:39 2020/2/21
     * @param page
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO> selectNotInGateParamCheckList(IPage<MetadataVO> page, MetadataVO metadata);
    /**
     * @Description 带校验的查询
     * @Author 王静晗
     * @Date 2020年4月26日18:08:55
     * @param metadata
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    IPage<MetadataVO>  selectMetadataList(IPage<MetadataVO> page,Map<String, Object> metadata);
    /**
     * @Description 错误码查询
     * @Author 王静晗
     * @Date 2020年4月26日18:08:55
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     **/
    List<Metadata>  selectMetadataListByCode();
}
